# !/usr/bin/python
# -*- coding: utf-8 -*-
"""
@FileName:  Choose_Img.py
@Time    :  2022-1-4 18:02
@Author  :  Alan_1999
@Version :  1.0
@License :  (C)Copyright 2021-2022
@Desc    :  筛选图片并且更改大小和名字
"""
import os

from PIL import Image


# ImageFile.LOAD_TRUNCATED_IMAGES = True    #如果图片太大报错可以使用这个


def Delete_Img(dir):
    files = os.listdir(dir)  # 得到需要处理的所有图片
    for each_bmp in files:  # 遍历图片，进行筛选
        each_bmp_root = os.path.join(dir, each_bmp)  # 得到每个图片路径
        image = Image.open(each_bmp_root)  # 打开每个图片
        img = image.convert('RGB')  # 转化成RGB，其实图片大多都是RGB，即使灰度图也不一定转RGB，看需求
        width = img.size[0]  # 获取图像的宽和长
        height = img.size[1]
        if width < 100 or height < 175:
            os.remove(each_bmp_root)
            print(f"已经删除{each_bmp_root}")
        if width > height:  # 判断图形尺寸有一条边小于600像素的直接删除
            os.remove(each_bmp_root)
            print(f"已经删除{each_bmp_root}")


def Reszie_Img(dir):
    files = os.listdir(dir)  # 得到需要处理的所有图片
    count = 1
    for each_bmp in files:  # 遍历图片，进行筛选
        each_bmp_root = os.path.join(dir, each_bmp)  # 得到每个图片路径
        im = Image.open(each_bmp_root)
        # Resize图片大小，入口参数为一个tuple，新的图片大小
        imBackground = im.resize((100, 175))  # 宽高
        # 处理后的图片的存储路径，以及存储格式
        new_dir = f'{dir}bk{count}.jpg'
        if os.path.isfile(new_dir):
            os.remove(new_dir)
        imBackground.save(new_dir, 'png')
        print(f'{dir}bk{count}.jpg已保存')
        count += 1


if __name__ == '__main__':
    dir = 'static/images/'  # 需要处理的图片目录
    Delete_Img(dir)
    Reszie_Img(dir)
